home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (PO)
/
Nibble Volume 10, No. 03 (1989-03)(MicroSPARC)(Side A)[a].zip
/
Nibble Volume 10, No. 03 (1989-03)(MicroSPARC)(Side A)[a].po
/
GS.LOADER.S
< prev
next >
Wrap
Text File
|
1996-12-24
|
4KB
|
168 lines
*******************************
* GRAPHICS.SWITCH SOURCE CODE *
* BY TOM DORRIS *
* COPYRIGHT (C) 1989 *
* MICROSPARC, INC. *
* CONCORD, MA 01742 *
*******************************
* MERLIN ASSEMBLER
ORG $6500
ERRBYT EQU $6
YCOOR EQU $7
FPOSL EQU $8
FPOSH EQU $9
POS EQU $26
MASK EQU $FA
OFFSET EQU $FB
XOFF EQU $FC
TEMP EQU $FD
* OTHER LOCATIONS
PLIST EQU $6055
CLRLST EQU $6060
MLI EQU $BF00
HGR2 EQU $F3D8
HPOSN EQU $F411
HCOLOR EQU $F6F0
********************************
JSR HGR2 Clear and display page 2
LDA #1
STA MASK
LDA #0
STA YCOOR
STA OFFSET
JSR HPOSN Prepare POS for first line
* Set up for OPEN command
LDA #3 Parameter count
STA PLIST
LDA #0
STA PLIST+1
STA PLIST+3
LDA #$60
STA PLIST+2 Pathname location
LDA #$61
STA PLIST+4 IO buffer (1K)
LDA #1
STA PLIST+5 Reference number
JSR MLI Execute command
HEX C8 Call number for OPEN
HEX 5560 PLIST location
BEQ OK
STA ERRBYT
RTS
OK LDX #7
JSR HCOLOR
* Set up for READ command
LDA #4 Parameter count
STA PLIST
LDA #1
STA PLIST+1 Reference number
LDA #0
STA PLIST+2
STA PLIST+4 Request count LO
STA PLIST+6 Transfer count
STA PLIST+7
LDA #$20
STA PLIST+5 Request count HI
LDA #$70
STA PLIST+3 Data buffer
JSR READ Read first 8,192 bytes
LDA XOFF Get amount to offset pic
BEQ NXT If none, go on
OK5 JSR GETBYTE
DEC XOFF DEC twice for two pixel
DEC XOFF SUPER HIRES byte
BNE OK5
NXT JSR GETBYTE Get next byte
STA TEMP
AND #$F0 Get first pixel color
CLC
ROR
ROR
ROR
ROR
JSR PLOT Plot color
BCS DNE
LDA TEMP
AND #$0F Mask second color
JSR PLOT
BCC NXT
DNE LDA #1 Parameter for CLOSE
STA PLIST
STA PLIST+1
JSR MLI
HEX CC Call number for CLOSE
HEX 5560 PLIST location
LDA #0
STA ERRBYT
RTS
PLOT TAX
LDA CLRLST,X Determine if color is on
BEQ RTN No, move on
LDY OFFSET Get screen-byte offset
LDA (POS),Y Get screen byte
ORA MASK Plot point
STA (POS),Y Replace byte
RTN ASL MASK Move mask to next pixel
BPL KO Byte overflow?
LDA #1
STA MASK
INC OFFSET Yes, move to next byte
KO LDA OFFSET
CMP #40
BNE NTD
LDA #20
STA ERRBYT
GTMR JSR GETBYTE Get bytes from file to
DEC ERRBYT move to next line
BNE GTMR
LDA #0
STA ERRBYT
STA OFFSET
LDA #1
STA MASK
INC YCOOR
LDA YCOOR
JSR HPOSN Find next line
LDA YCOOR
CMP #192 Last line?
BNE NTD No, clear error flag
SEC
RTS
NTD CLC
RTS
READ JSR MLI Perform READ command
HEX CA Call number for READ
HEX 5560 PLIST location
LDA #0
STA FPOSL
LDA #$70
STA FPOSH
RTS
GETBYTE LDA FPOSL
BNE RD
LDA FPOSH
CMP #$90
BNE RD
JSR READ
RD LDY #0
LDA (FPOSL),Y
INC FPOSL
BNE DR
INC FPOSH
DR RTS